Dynamic address assignment can be achieved in various ways. As an example, the Dynamic Host Configuration Protocol (DHCP) is a known protocol used in Internet Protocol (IP) based networks. DHCP assigns unique addresses to each device in the network. To achieve this, a dedicated computer is needed as DHCP server. Within Zigbee, a dedicated node, called the controller, is needed to assign addresses to all devices in the Zigbee network.
The trend is to compose systems by building a system as a network of standard re-useable building blocks. These building blocks may have a single function, i.e. light generation or presence sensing. Re-use of intelligent building blocks is an approach to create a large product portfolio with only a limited set of building blocks. The combination of intelligent building blocks in a system can be flexible and may not be known beforehand.
Each device in a network needs to be uniquely identifiable and addressable. Therefore, in a networked system, each building block in the network should be known and should have a unique network address. To achieve this, connecting multiple identical devices needs additional configuration of the device addresses, either in the factory or in the field. The unique addresses shall be assigned to each device, before these devices are combined in the system. At production time of a device it is not known in which system the device is used, so it is not possible to assign a unique address to the device.
Thus, when the network or system is manufactured or composed, an extra process step is needed to assign unique addresses to each device in the system. However, this process step is error-prone, since multiple identical devices are used in the system and these devices may not be mixed-up after the unique addresses have been assigned. Due to cost, complexity, and physical foot-print reasons the addition of one or more extra devices that only contain network functions is not acceptable.